import { NextRequest, NextResponse } from 'next/server';
import { createAdminClient } from '@/lib/supabase';

export async function POST(request: NextRequest) {
  try {
    const body = await request.json();
    const { userId } = body;

    console.log('🚀 获取历史对话列表:', { userId });

    if (!userId) {
      return NextResponse.json(
        { error: '缺少userId参数' },
        { status: 400 }
      );
    }

    const supabase = createAdminClient();

    // 从数据库查询该用户的所有会话，按最后消息时间倒序
    const { data: sessions, error } = await supabase
      .from('vertu_metaself_chat_sessions')
      .select('*')
      .eq('user_id', parseInt(userId))
      .order('last_message_time', { ascending: false })
      .limit(50); // 最多返回50条记录

    if (error) {
      console.error('❌ 查询数据库失败:', error);
      throw error;
    }

    // 格式化返回数据，匹配前端期望的格式
    const formattedSessions = (sessions || []).map((session) => ({
      chatId: session.chat_id,
      title: session.last_message.length > 30 
        ? session.last_message.substring(0, 30) + '...' 
        : session.last_message,
      updateTime: new Date(Number(session.last_message_time)).toISOString(),
      lastMessage: session.last_message,
      lastMessageTime: session.last_message_time,
    }));

    console.log('✅ 历史对话获取成功:', { count: formattedSessions.length });

    return NextResponse.json({
      data: {
        list: formattedSessions,
        total: formattedSessions.length,
      },
    });

  } catch (error) {
    console.error('❌ 历史对话API失败:', error);
    return NextResponse.json(
      { error: '内部服务器错误', message: error instanceof Error ? error.message : '未知错误' },
      { status: 500 }
    );
  }
}
